In recent years, a number of computerized applications for storing, retrieving, and displaying electronic content have come into wide use. With the advent of object-oriented and object-based paradigms throughout the software industry, the electronic content processed by such programs has been increasingly conceived in terms of a collection of separate objects, each object representing a particular content element, and the various objects structured to form the overall electronic content by being interconnected through a graph of linking data.
One example of electronic content conceived of as being composed of content elements encapsulated or described by objects is the ADOBE® Portable Document Format (PDF). In a PDF document, various content elements, such as pages, fonts, color descriptors, graphical elements, and so forth are represented by discrete objects within the document.
Representing electronic content as a collection of interconnected objects encapsulating content elements allows for comparatively efficient processing when the electronic content is to be written out to, or read in from, a serialized form such as for example a file providing random-access capability. However, if a new storage format, such as one in which the electronic content is divided into a number of separate serializations, is to be used, significant new programming code is typically needed to handle the translation between the new storage format and the internal data structure by which the content is rendered and/or edited. In addition, a storage format constructed of several serializations may not be conducive to on-demand or “lazy” loading. The inability to be able to do “lazy access” in rendering or otherwise making an electronic content accessible for in-memory manipulation typically causes the user to be made to wait for the entire electronic content to be loaded before being able to view, edit, or access any part of the content.